Proposed Tasks
GUI
   1. Add parameters in the GUI for step size of the ODE solver, and other parameters of the Matlab solvers.
   2. Show phase plane/arrows.
   3. Show on the graph the value of the point the cursor is on.
   4. Zoom handling. 
   5. Add scalable panels. Full screen mode.
   6. Add Interface for adding ODE systems.
   7. Add ability to view the graph at 'in' and 'sum' scales.
   8. Improve design. Add some colour, rearrange, etc. Place our yet-to-be-decided logo in a prominent place.
   9. Add explanation of the parameters and the solvers.
   10. Add parameter for T (lethal ccdb)
   11. Add library of example ODE systems.
   12. Option to choose model (in/sum, with/without diffusion, with some simplifications etc).
   13. Option to view the equations. LaTeX support already exists in MATLAB GUI. Maybe even option to edit them?
   14. Documentation and help. Tutorials on YouTube?
   15. Interrupt button?
   16. Save graph or results to file. Generate log file.
   17. Option to choose parameter units and automatic conversion between them. Choose logarithmic/linear scale.
   18. Test compatibility on other computers.
Performance/Algorithm
   1. More sophisticated original algorithm: backward euler, error estimation, varying step size, RungeKutta etc. Most of them are more probable to improve accuracy than speed.
http://cseweb.ucsd.edu/classes/fa04/cse245/Reading/survey-ode.pdf
http://www.math.ubc.ca/~cass/courses/m256-7b/rk.pdf
   2. Keep computed derivatives in a 15 dimensional data struct (array, kd tree, etc). Possibly better performance on initial condition change.
   3. Perform the computation in a gradual way: use large steps at the beginning and then refine the step in places with higher gradient.
   4. Use other implements of ode solvers, from other sources.
   5. Cache step sizes in matlab solvers. Use bigger one and then use MATLAB's refine.
   6. Other ideas?
Theoretical/Analytics
   1. Update equations according to recent  and future advances.
   2. Add auto-detection of optimal ODE method. Add divergence detection. When a divergence is detected, the algorithm will try another algorithm accordingly.
   3. Specify units and update value ranges of constants and initial condition accordingly.
   4. Examine the abnormality in my algorithm for certain inputs.
   5. Display analytic computations (peaks, living time) in a textbox or on the graph. Show running time, error,. Guess reason for divergence. Estimate running time in advance. Show the effect of different assumptions and simplifications. Calculate what terms are neglectable.
   6. Use real world constants.
   7. Option to compute parameters fitting to results of experiment. Load experiment results to the graph.
   8. Machine Learning: track results in order to improve solver suggestion, divergence detection, smart workspace layout, track the effect of the parameters on the optimal step-size, option to correct wrong detection of peaks or other predictions. Hard.
   9. Integrate with other product of us: get constants from our database.


Priorities 
1. Perform the computation in a gradual way: use large steps at the beginning and then refine the step in places with higher gradient.
2. More sophisticated original algorithm: backward euler, error estimation, varying step size, RungeKutta etc. Most of them are more probable to improve accuracy than speed.
3. Display analytic computations (peaks, living time) in a textbox or on the graph. Show running time, error,. Guess reason for divergence. Estimate running time in advance. Show the effect of different assumptions and simplifications. Calculate what terms are neglectable.
4. Add auto-detection for optimal ODE method. Add divergence detection. When a divergence is detected, the algorithm will try another algorithm accordingly.
5. Option to choose parameters' units and automatic conversion between them. Choose logarithmic/linear scale.
6. Examine the abnormality in my algorithm for certain inputs.
7. Option to compute parameters fitting to results of experiment. Load experiment results to the graph.

